package gui;

import modelcontroller.Conversation;

/**
 *
 * @author Mariam
 */
public interface ToUser {

    /**
     * Displays the main chat window (the user is connected)
     */
    void displayChatWindow();

    /**
     * Displays the connection window (the user is disconnected)
     */
    void displayConnectionWindow();

    /**
     * Displays the file chooser window to ask the user where he wants to
     * locate the file that he is going to receive
     *
     * @return the path (location) where the user wants to download the file
     */
    String displayFileChooser();

    /**
     * Displays the proposition from a remote user to send a file
     *
     * @param username the login of the sender of the request
     * @param filename the name of the file that is proposed to the local user
     * @return the user's reply: true if he wants to receive the file, false if
     * he refuses
     */
    boolean displayFileRequest(String username, String filename);

    /**
     * Displays a new conversation: it opens a new tab in the chat window that
     * will contain the messages exchanged
     *
     * @param conversation the new conversation
     */
    void displayNewConversation(Conversation conversation);

    /**
     * Displays the new text message that has been received
     */
    void displayNewMessage();

    /**
     * Displays/refreshes the list of the connected remote users
     */
    void displayUsersList();
    
}
